// 变量声明提升，仅限 var
// 只会提升声明操作，不会提升赋值操作，导致变量在声明之前都是undefined

console.log(x)  //undefined
var x = 10

function fn(){
    console.log(a) // undefined
    var a = 100 //提升到当前作用域的最前面
}

fn()
// console.log(a) //这是全局，没有 a 变量  报错



function fn2(){
    // console.log(b) // 报错
     b = 100 // 变量前没有任何声明 ，这个变量就是全局变量
}

fn2()
console.log(b) // 100